package cn.kgc.bilibili.controller;


import cn.kgc.bilibili.pojo.Favrelation;
import cn.kgc.bilibili.pojo.Userfav;
import cn.kgc.bilibili.pojo.Video;
import cn.kgc.bilibili.service.FavService;
import cn.kgc.bilibili.vo.FavVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import javax.xml.ws.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/fav")
public class FavController {

    @Resource
    private FavService favService;

    @GetMapping("/selectByfavid")
    public FavVo selectByid(@RequestParam("userid") int userid){
        FavVo favVo=new FavVo();
        try {
            List<Userfav>  list = favService.getUserFavByid(userid);
            favVo.setStatus(true);
            favVo.setMsg("查询成功");
            favVo.setUserfav(list);
        } catch (Exception e) {
            e.printStackTrace();
            favVo.setStatus(false);
            favVo.setMsg(e.getMessage());
        }
        return favVo;
    }
    @GetMapping("/selectbyvideid")
    public FavVo selectByid2(@RequestParam("userfavid") int userfavid){
        FavVo favVo=new FavVo();
        Map<String,Object> map=new HashMap<>();
        try {
            List<Video> favofVideoByid = favService.getFavofVideoByid(userfavid);
            System.out.println(favofVideoByid);
            //视频个数
            int count=favofVideoByid.size();
            favVo.setCount(count);
            favVo.setStatus(true);
            favVo.setMsg("查询成功");
            favVo.setVideos(favofVideoByid);
        } catch (Exception e) {
            e.printStackTrace();
            favVo.setStatus(false);
            favVo.setMsg(e.getMessage());
        }
        return favVo;
    }

    @GetMapping("/add")
    public  FavVo insert(int userid,String favname,String contents) {
        FavVo favVo = new FavVo();
        Userfav userfav = new Userfav();
        userfav.setUserid(userid);
        userfav.setFavname(favname);
        userfav.setContents(contents);
        if (favService.insertFav(userfav) > 0) {
            favVo.setStatus(true);
            favVo.setMsg("增加成功");
        } else {
            favVo.setStatus(false);
            favVo.setMsg("增加失败");
        }
        return favVo;
    }
    @GetMapping("/adds")
    public  FavVo inserts(Integer favid,Integer  videoid) {
        FavVo favVo = new FavVo();
        Favrelation favrelation=new Favrelation();
        favrelation.setFavid(favid);
        favrelation.setVideoid(videoid);
        if (favService.insert(favrelation)>0) {
            favVo.setStatus(true);
            favVo.setMsg("增加成功");
        } else {
            favVo.setStatus(false);
            favVo.setMsg("增加失败");
        }
        return favVo;
    }

    @GetMapping("/update")
    public  FavVo update(int userid,String favname,int id) {
        FavVo favVo = new FavVo();
        Userfav userfav = new Userfav();
        userfav.setId(id);
        userfav.setUserid(userid);
        userfav.setFavname(favname);
        if (favService.updateFav(userfav) > 0) {
            favVo.setStatus(true);
            favVo.setMsg("修改成功");
        } else {
            favVo.setStatus(false);
            favVo.setMsg("修改失败");
        }
        return favVo;
    }

    @GetMapping("/delete")
    public FavVo delete(@RequestParam("id") int id){
        FavVo favVo = new FavVo();
        if(favService.deleteFav(id)>0){
            favVo.setMsg("删除成功");
            favVo.setStatus(true);
        }else {
            favVo.setMsg("删除失败");
            favVo.setStatus(false);
        }
        return favVo;
    }
}
